package org.hilo.boot.core.mapper;

import java.util.Map;

import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.UpdateProvider;

import tk.mybatis.mapper.annotation.RegisterMapper;

/**
 * 通用Mapper接口,更新
 * @deprecated 使用不方面，建议使用select + update组合方式进行部分字段的更新
 *
 * @author zollty
 */
@RegisterMapper
public interface UpdateCustomFieldsMapper<T> {


    /**
     * 根据组件更新指定的所有字段的值（包括空值也会更新）
     *
     * @param record 要更新的数据
     * @param param 要更新的字段
     */
    @UpdateProvider(type = UpdateCustomFieldsProvider.class, method = "dynamicSQL")
    @Options(useCache = false, useGeneratedKeys = false)
    int updateCustomFields(@Param("record") T record, @Param("param") Map<String, Object> param);
    
}
